;(function () {
  type CustomHandler = (name: string, age: number) => void

  const handler1: CustomHandler = (name, age) => true
  const handler2: CustomHandler = (name, age) => 'linbudu'
  const handler3: CustomHandler = (name, age) => null
  const handler4: CustomHandler = (name, age) => undefined

  //上下文类型对于 void 返回值类型的函数，并不会真的要求它啥都不能返回。然而，虽然这些函数实现可以返回任意类型的值，但对于调用结果的类型，仍然是 void：
  const result1 = handler1('lys', 599) // void
  const result2 = handler2('lys', 599) // void
  const result3 = handler3('linbudu', 599) // void
  const result4 = handler4('linbudu', 599) // void

  //看起来这是一种很奇怪的、错误的行为，但实际上，我们日常开发中的很多代码都需要这一“不正确的”行为才不会报错，比如以下这个例子：

  const arr: number[] = []
  const list: number[] = [1, 2, 3]

  list.forEach((item) => {
    arr.push(item)
  })
  console.log('list__', arr)
})()
